상위 계층

@Wonyu· February 17, 2025 · 6 min read

상위 계층의 이해

OSI 7계층 모델에서 상위 계층인 세션 계층, 표현 계층, 응용 계층은 사용자 프로그램으로 구현되는데, 일반적으로 세 계층의 기능이 하나의 프로그램으로 묶여 구현된다.

계층 역할
세션 계층 (Session Layer, 5계층) 통신 세션 관리 (연결 설정, 유지, 해제)
표현 계층 (Presentation Layer, 6계층) 데이터 변환, 압축, 암호화
응용 계층 (Application Layer, 7계층) 사용자와 네트워크 간 인터페이스 제공

세션 계층

통신 세션을 설정, 유지, 해제하는 기능을 담당한다.
데이터 송수신 시 동기화를 수행하여, 중단 시 다시 연결할 수 있도록 지원한다.
응용 계층 간의 데이터 교환을 관리하며, 송수신 흐름을 제어한다.

📌 세션 연결

기능 설명
세션 설정 (Session Establishment) 응용 프로세스 간 통신 세션을 설정
세션 유지 (Session Maintenance) 오류 발생 시 재전송을 통해 연결 유지
세션 해제 (Session Termination) 통신이 끝나면 세션을 정상적으로 종료

📌 동기

동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통 처리 지점, 즉 동기점을 지정하기 위해 사용한다.
메시지 전송 과정에서 발생하는 오류를 복구하기 위해 동기점을 설정한다.

📌 토큰

세션 계층은 두 응용 프로세스의 대화를 관리하기 위해 토큰이라는 특수 메시지를 사용한다.

🔹 토큰의 종류

종류 역할
데이터 토큰 데이터를 전송할 수 있는 권리를 제공
해제 토큰 통신 양단 간의 연결 해제 과정을 제어
동기 토큰 동기 처리가 필요한 지점에 사용

📌 동기

세션 계층에서는 통신 중 오류가 발생할 경우를 대비해 동기화 지점을 설정한다.
동기화를 통해 중단된 데이터 전송을 특정 지점부터 다시 시작할 수 있다.

동기화 방식 설명
일반 동기 (Minor Synchronization) 작은 단위의 데이터 복구용
주 동기 (Major Synchronization) 전체 데이터 복구용

📌 세션 연결 (Session Connection)

세션 계층에서 제공하는 연결은 응용 프로세스가 다른 응용 프로세스에 세션을 설정하기 위해 사용한다.

🔹 다중 세션 연결 서버

  • 다수의 클라이언트 프로세스에 동시에 여러 세션 연결을 설정할 수 있는 서버
  • 멀티스레딩 또는 비동기 I/O 방식을 사용해 다중 연결을 처리
    ex) 웹 서버, 게임 서버, 채팅 서버 등

🔹 단일 세션 연결 서버

  • 한 번에 하나의 클라이언트만 연결할 수 있는 서버
  • 새로운 클라이언트가 연결 요청 시, 기존 연결을 종료하거나 대기
    ex) 텔넷, FTP 등

표현 계층

응용 프로세스 사이 전송되는 메시지의 표현 방법을 다룬다.
송신 프로세스가 전달하는 의미를 수신 프로세스에서 정확히 이해할 수 있도록 한다.

📌 데이터 표현

네트워크에서 송수신되는 데이터를 응용 프로그램이 이해할 수 있도록 변환한다.
데이터 변환 작업을 수행하여, 서로 다른 시스템 간 호환성을 유지한다.

🔹 주요 변환 방식

변환 방식 설명 예시
문자 인코딩 변환 ASCII ↔ Unicode 변환 다국어 지원
파일 형식 변환 JPEG ↔ PNG 변환 이미지 변환
데이터 구조 변환 Big-endian ↔ Little-endian 변환 CPU 구조 차이 해결

📌 데이터 압축

네트워크 대역폭을 절약하고 전송 속도를 향상시키기 위해 데이터를 압축한다.

압축 방식 설명 예시
무손실 압축 데이터 손실 없이 크기 축소 ZIP, PNG
손실 압축 품질 저하를 허용하며 크기 축소 MP3, JPEG
  • 손실 압축을 사용하는 이유는 비손실 압축에 비해 압축 데이터의 크기가 작기 때문이다.

응용 계층

하부 계층을 이용해 사용자에게 편리한 응용 환경을 제공한다.
운영체제에서 제공되는 계층 4의 인터페이스를 사용해 통신 기능을 구현한다.

@Wonyu
Hello :) I'm Wonyu